home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / art&graf.ix / art-0018 / neo2mono / neo2mono.doc < prev    next >
Text File  |  1997-04-16  |  10KB  |  174 lines

  1. 0660103030566
  2. 9[....................................................]
  3. üNEO2MONO
  4. äEinProgrammzurKonvertierungvonNeochromeBildern
  5.  
  6. ÇHieristdasvonallenATARISTBesitzernlangerwarteteKon-
  7. vertierungsprogramm.GehörenSieauchzudenen,diesichdie
  8. PublicDomainDiskettenbesorgthaben,undnundievielen,schönen
  9. Neochromebilderdiesichdarauffindennichtanschauenkönnen?
  10.  
  11. SeiensieunbesorgthieristdieLösung:DasProgramm
  12. üNEO2MONOÇkonvertiertdieFarbbilderso,daßsieaufdem
  13. Monochromemonitordargestelltwerdenkönnen.DieFarben
  14. werdendabeidurchGrauwertesimuliert.UnddasGanzegehtin
  15. Sekundenschnelle.Vergessensiealsoirgendwelcheseltsamen
  16. BASICProgramme,diezwarauchkonvertierenkönnen,aberso,
  17. daßmaninderZwischenzeitruhigmaleine(oderauchzwei)
  18. TasseKaffeetrinkenkann.üNEO2MONOÇerledigteinBildin3.6
  19. Sekunden--ohneLadenvonDiskette--undistdamit
  20. gleichzeitigeinBeispieldafür,daßmaninCdie
  21. kompliziertestenBitfummeleiensehreffizienterledigenkann.
  22.  
  23. BevorichdasProgrammkurzerkläreeinigeWortezurBedienung:
  24. DasProgrammmußdieEndungTTP(TosTakesParameter)bekommen.
  25. NachdemAnklickengibtesdannzweiMöglichkeiten:
  26.  
  27.      1.mangibteinfachdenNameneinesNeochromebildesan.
  28. DieseswirddanngeladenunddiekonvertierteVersion
  29. aufdemBildschirmdargestellt.--Tretensieeinige
  30. MeterzurückundbewundernsiedasErgebnis.
  31. 2.odersiegebenvordemDateinamennochü-wÇein.Dann
  32. verschwindetdasBildnachBeendigungdesProgrammes
  33. zwarwiebei1.)vomBildschirm,abergleichzeitigwird
  34. eineKopiedavonaufDiskettegerettet(mitderEndung
  35. monstattneo).DadurchhabensiedieMöglichkeitdas
  36. BildspätermitirgendwelchenanderenProgrammenzu
  37. laden(z.BinBASICmitbload)undzubearbeiten.
  38.  
  39. Alsoumesnocheinmalganzdeutlichzumachen:
  40.  
  41.                neo2monoaafall.neo
  42.  
  43. konvertiertdenberühmtenNeochromeWasserfall(leiderohne
  44. Bewegung)und
  45.  
  46.                neo2mono-waafall.neo
  47.  
  48. erzeugtnachderKonvertierungeineDateiaafall.mondiemandann
  49. weiterverarbeitenkann.
  50.  
  51. Umzuverstehen,wiedasGanzefunktioniertmußmanzuerst
  52. einmalwissen,wiederATARIseinenBildschirmorganisierthat.
  53. UnsinteressierennurzweiderdreiAuflösungsstufen.
  54. DieAuflösungvon640*400,diees(bisjetzt)nurschwarz-
  55. weißgibt,weilwirdasBildaufdieseAuflösungkonvertieren
  56. müssenund320*200,weildieNeochromeBilderindieser
  57. Auflösunggespeichertsind.
  58. DiehoheAuflösungistsehreinfachangelegt.JedemBitim
  59. BildspeicheristgenaueinPunkt(Pixel)aufdemBildschirm
  60. zugeordnet.IstdasBitaufeinsgesetztwirdderPunktschwarz,
  61. istesaufNull,weißangezeigt.
  62. DashöchstwertigeBitimallererstenWort(1Wort=16Bit)
  63. desBildspeichersistfürdenPunktganzlinksobeninderEcke
  64. zuständig.Mankannsichnunleichtausrechnen,daßmangenau
  65. 640/16=40SpeicherwortefüreineBildschirmzeilebenötigt.Wenn
  66. mandieseZahlmit400derAnzahlderZeilenmultipliziertkommt
  67. mangenauaufdie16000Worte(oder32000Byte),dieder
  68. Bildspeichergroßist.
  69.  
  70. BeiderniedrigenAuflösungistallesetwaskomplizierter.In
  71. dieserAuflösungsstufehatman16FarbenzurVerfügungd.hfür
  72. jedenBildpunktmußimBildspeichereinWertzwischen0und15
  73. stehen,derdiejeweiligeFarbedesPunktesrepräsentiert.Um
  74. ZahlenwerteindiesemBereichdarzustellenbenötigtman4Bit:
  75.  
  76. 15á10Ç=1*2É3Ç+1*2É2Ç+1*2É1Ç+1=1111á2
  77. Ç
  78. DaderBildspeicherimmerdiegleicheGrößehatfolgtdaraus,daß
  79. mandamitnurnoch1/4derhohenAuflösung,eben320*200Pixel
  80. hat.Esbleibtjetztnochzuklären,wodiezueinemPunkt
  81. gehörigenBitszufindensind.DieLösungsiehtsoaus:
  82. ImmervieraufeinanderfolgendeWorteimBildspeicherergeben
  83. 16FarbpunkteaufdemBildschirmundzwarbildenimmerdievier
  84. BitsmitdergleichenWertigkeitzusammengenommenden4-Bitwert
  85. derbenötigtwird.FürdenPunktganzlinksobenbedeutetdas
  86. also:MannehmedieerstenvierWorteimBildspeicher.Vonjedem
  87. WortdashöchstwertigeBitundschreibedieseBitsnebeneinander.
  88. DerWertdersichdannergibtentsprichtderFarbedes
  89. Punktes.(AnmerkungfürProfis:Esergibtsichnatürlichnurder
  90. IndexindieFarbpalette,dastuthierabernichtszurSache.Falls
  91. Siedasnichtganzverstandenhabentröstensiesich,mirginges
  92. anfänglichgenauso.BetrachtensiesicheinfacheinmalBild_1dann
  93. wirdihnenallesklarwerden.
  94.  
  95. EineähnlichRechnungwieobenergibtnun,daßmanbei320Punkten
  96. a4Bit=1280Bit=1280/16=80WorteproBildzeilebenötigt.
  97.  
  98. DieIdeeistnunjedesFarbpixeldurcheinenGrauwertanzunähern.
  99. SiewerdenjetztzuRechtfragenwoherichdennGrauwertenehmen
  100. will,wiejaallgemeinbekanntistbietetderMonochromemonitor,
  101. wieseinNameschonsagtnurweißestesWeißoderschwärzestes
  102. Schwarzunddazwischenistnichts.
  103.  
  104. HierkommtnuneineMethodezumZuge,dieschonindenersten
  105. AnfängenderComputergraphikbeliebtundbekanntwar.DerTrick
  106. ist:AuseinerangemessenenEntfernungbetrachtetverschwimmen
  107. mehrerePixelzueinemFleckderumsodunklerwird,jehöher
  108. diePixelkonzentrationwird.Mannehmealsoz.B.eine2*2Matrix
  109. undfüllesienachundnachmitPixelnanundschonhatmanfünf
  110. GrauwertstufenzurVerfügung.Bild_2zeigtwieichdieVerteilung
  111. fürüNEO2MONOÇgewählthabe.DievierBitFarbinformationwerden
  112. alsoaufvierPixelininderGrauwertmatrixabgebildet.
  113. JetzthabensieallesanGrundlagenzusammenumdas
  114. Konvertierungsprogrammverstehenzukönnen.
  115.  
  116. DasProgrammzerfälltindreiHauptbestandteile:
  117. EinlesendesFarbildesauseinerNeochromedatei,Konvertierendes
  118. BildesdirektaufdenBildschirmundfallsgewünschtAbspeichern
  119. deskonvertiertenBildesaufDiskette.
  120.  
  121. ZumEinlesenundAbspeichernistnichtvielzusagen.Es
  122. werdennichtdieCStandardroutinenbenutzt,dadieseim
  123. Allgemeinenzulangsamsind,sonderndirektdieSchnittstellendie
  124. dasATARITOSanbietet.EinBildkanndadurchvonderRAM-Diskin
  125. wenigerals2Sekundengeladenwerden.BeimLadendesBildeswird
  126. zuersteinVorspannvon128Byteüberlesen.Dieserenthältglobale
  127. InformationzumBild,wiezumBeispieldieFarbpalette.Ich
  128. benutzedieseInformationenallerdingsnichtinmeinemProgramm.
  129. AndieserStelleergebensichnochVerbesserungsmöglichkeiten,
  130. denensiegerneeinmalnachgehenkönnen.
  131. DasFarbbildwirdineinenintegerArraynamensübuffÇgeladen
  132. undvondortausweiterverarbeitet.EineandereMöglichkeitwäre
  133. esdasBild"insitu"alsodirektimBildschirmspeicherzu
  134. konvertieren.BeidieserMethodemüßteallerdingsjedesBitdes
  135. konvertiertenBildesseperatgesetztundgelöschtwerden,während
  136. meineMethodedassimultaneVerarbeitenvonjeweilszwei
  137. nebeneinanderliegendenBitserlaubt--darausfolgtzusammenmit
  138. einigenanderenDingenmehralsdoppelteGeschwindigkeit.Außerdem
  139. istderAtarieinRechner,beidemmannunjawirklichnichtmit
  140. Speicherzugeizenbraucht.
  141. DieeigentlicheKonvertierungerfolgtinderFunktion
  142. üconvert()Çinnerhalbderdreiverschachteltenfor-Schleifen.Die
  143. SchleifemitdemIndexüyÇläuftüberdieZeilendesFarbbilds,
  144. gleichzeitigwerdendiezweilongPointerüptr1Çundüptr2
  145. Çhochgzählt.SiezeigenjeweilsaufdenAnfangderzwei
  146. Grauwertzeilen,diesichausderKonvertierungeinerFarbzeile
  147. ergeben.Bild_3zeigt,wiedererstePunkteinerFarbzeile
  148. konvertiertwird.DieSchleifeSchleifemitdemIndexüxÇläuftnun
  149. jeweilsinnerhalbeinerFarbzeileinSprüngenvon4Worten.Wie
  150. wirobenschonfestgestellthabenergenvieraufeinanderfolgende
  151. Speicherworte16aufeinanderfolgendePixelimFarbbild.Diese16
  152. PixelwerdeninderinnerstenSchleifemitdemIndexübitÇ
  153. errechnet.DieFunktionütest()ÇliefertzujedemPunktden
  154. Farbwert.AbhängigvondiesemFarbwertwerdennunjeweilszwei
  155. BitsindenlongVariablenül1Çundül2Çgesetzt.Daauseinem
  156. FarbpunktzweinebeneinanderliegendeBitsinül1Çbzwül2Çwerden
  157. fülltdieübit-ÇSchleifegeradediezweiVariablen,sodaßdiese
  158. nachVerlassenderSchleifeandieStellendesBildspeichers
  159. geschriebenwerdenkönnen,aufdieüptrÇbzwüptr2Çzeigen.
  160. DasistschondieganzeKonvertierung.WerdieErklärungbeim
  161. erstenDurchlesenschonverstandenhatkannsichgratulieren
  162. DieKonvertierungistübrigensnichtbijektiv,dasheißtsie
  163. läßtsichnichtumkehren.UmeineeindeutigeAbbildungzuerhalten
  164. müßtemanjedender16Farbwerteineinesvon16Graumustern
  165. verwandeln.Dasbedeutetstatteiner2*2Matrixmußmaneine4*
  166. 4MatrixmitPixelnfüllen.UmdasganzeBildsoaufden
  167. Monochromemonitorbringenzukönnenmüßtedieserallerdingseine
  168. Auflösungvon1380*800Punktenhaben.
  169. WerkeinenC-CompilerhatoderzufaulistdasProgramm
  170. abzutippenkanndielauffähigeVersionzusammenmitden
  171. NeochromebildernaufderPublicDomainDiskettebestellen.
  172. Bild_4zeigteinmitüNEO2MONOÇkonvertiertesBild.
  173.  
  174.